﻿using DAO;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;

namespace BALayer
{
    public class LoaiDanhSachBA
    {
        public static DataTable selectLoaiDanhSachAll()
        {
            try
            {
                string sql = "select MaLoai, TenLoai from LoaiDanhSach";
                DataTable dt = DataAccess.Access.ExcuQuery(sql);
                return dt;
            }
            catch (Exception)
            {
                throw new Exception("Không thể lấy danh sách đối tượng");
            }
            
        }

        public static int maLoaiDSMax()
        {
            try
            {
                int maLoaiMax = 0;
                string sql = "select Max(MaLoai) from LoaiDanhSach";
                DataTable dt = DataAccess.Access.ExcuQuery(sql);
                if (!"".Equals(dt.Rows[0].ItemArray[0].ToString()))
                {
                    maLoaiMax = int.Parse(dt.Rows[0].ItemArray[0].ToString());
                }

                return maLoaiMax;
            }
            catch (Exception)
            {
                return -1;
            }
            
        }

        public static void insertLoaiDS(LoaiDanhSachDAO LoaiDS)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("insert into LoaiDanhSach ");
            sql.Append("values( ");
            sql.Append("@MaLoai ");
            sql.Append(", @TenLoai)");
            try
            {
                DataAccess.Access.ExcuNonQuery(sql.ToString(),
                                                new OleDbParameter("MaLoai", LoaiDS.MaLoai),
                                                new OleDbParameter("TenLoai", LoaiDS.TenLoai));
            }
            catch (Exception)
            {
                throw new Exception("Không thể thêm Loại danh sách vào database");
            }
            
        }
        public static void updateLoaiDS(LoaiDanhSachDAO loaiDS)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("update LoaiDanhSach set ");
            sql.Append(" TenLoai = @TenLoai ");
            sql.Append(" where MaLoai = @MaLoai");
            try
            {
                DataAccess.Access.ExcuNonQuery(sql.ToString(),
                                                new OleDbParameter("@TenLoai", loaiDS.TenLoai),
                                                new OleDbParameter("@MaLoai", loaiDS.MaLoai));
            }
            catch (Exception)
            {
                throw new Exception("Không thể cập nhật thông tin loại danh sách");
            }
            
        }

        public static DataTable searchLoaiDanhSach(String tenLoai)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("select * from LoaiDanhSach ");
            sql.Append("where TenLoai like @TenLoai");
            try
            {
                return DataAccess.Access.ExcuQuery(sql.ToString(),
                    new OleDbParameter("TenLoai", "%" + tenLoai + "%"));
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}
